#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

// void* mymemcopy(void* dest, const void* src, size_t length)
// {
//     for(int i = 0; i < length; i++)
//     {
//         *((char*)dest + i) = *((char*) src + i);
//     }
//     return dest;
// }

// void* mymemmove(void* dest, void* src, size_t length)
// {
//     if(dest < src)
//     {
//         for(int i = 0; i < length; i++)
//         {
//             *((char*)dest + i) = *((char*)src + i);
//         }
//     }
//     else
//     {
//         for(int i = length - 1; i >= 0; i--)
//         {
//             *((char*)dest + i) = *((char*)src + i);
//         }
//     }
//     return dest;
// }

// const char* mystrstr(const char* obj, const char* src)
// {
//     int len = strlen(src);
//     int olen = strlen(obj);
//     for(int i = 0; i < len; i++)
//     {
//         if(len - i < olen) return nullptr;
//         if(obj[0] == src[i])
//         {
//             size_t j;
//             for(j = 0; j < olen; j++)
//             {
//                 if(obj[j] != src[i + j]) break;
//             }   
//             if(j == olen) return src + i;
//         }
//     }
//     return nullptr;
// }

// int main()
// {
    // const char* str = "abcdef";
    // char buff[10];
    // mymemcopy(buff, str, sizeof str);
    // cout << buff << endl;

    // char buffsystem[10];
    // mymemcopy(buffsystem, buff, sizeof(buff));

    // memcpy(buff + 1, buff, sizeof(buff) - 1);
    // cout << buff << endl;
    // mymemmove(buffsystem, buffsystem + 1, sizeof(buffsystem) - 1);
    // cout << buffsystem << endl;

//     const char* str = "abcdef";
//     const char* str2 = "def";

//     cout << mystrstr(str2, str) << endl;
//     return 0;
// }

